<!DOCTYPE html>
<html>
<head>
	<meta http-equiv="Content-type" content="text/html; charset=utf-8"/>
	<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,minimum-scale=1,user-scalable=no"/>
	<meta name="apple-mobile-web-app-capable" content="yes"/>
	<title>EdgeToEdgeStoreList - Auto Load</title>

	<script type="text/javascript" src="../deviceTheme.js" data-dojo-config="mblThemeFiles: ['base']"></script>
	<script type="text/javascript" src="../../../dojo/dojo.js" data-dojo-config="async: true, parseOnLoad: true"></script>

	<script type="text/javascript">
		require([
			"dojo/_base/Deferred",
			"dojo/dom-class",
			"dojo/store/Cache",
			"dojo/store/JsonRest",
			"dojo/store/Memory",
			"dojo/store/Observable",
			"dojo/ready",
			"dijit/registry",
			"dojox/mobile/ProgressIndicator",
			"dojox/mobile/parser",
			"dojox/mobile",
			"dojox/mobile/compat",
			"dojox/mobile/ScrollableView",
			"dojox/mobile/EdgeToEdgeStoreList"
		], function(Deferred, domClass, Cache, JsonRest, Memory, Observable, ready, registry, ProgressIndicator){
			//var url = "data/fruits.json";
			var url = "data/fake_service.php";
			var memoryStore = new Memory({idProperty:"label"});
			var restStore = new JsonRest({idProperty:"label", target: url});
			store = new Cache(restStore, memoryStore);

			var start = 1,
				count = 5,
				prog1 = null,
				list = null;
			function loadMore(){
				busy(true);
				setTimeout(function(){ // to simulate network latency
					Deferred.when(list.setQuery({start:start, count:count}), function(){
						busy(false);
					});
					start += count;
					return false;
				}, 1000);
			};

			function busy(flag){
				if(!prog1){
					prog1 = new ProgressIndicator({size:30, center:false});
					prog1.domNode.style.position = "absolute";
					prog1.domNode.style.margin = "5px";
					domClass.add(prog1.domNode, "mblProgWhite");
				}
				if(flag){
					var head1 = registry.byId("head1");
					prog1.placeAt(head1.domNode);
					prog1.start();
				}else{
					prog1.stop();
				}
			}

			adjustDestination = function(to, pos, dim){
				var dim = this.getDim();
				var h = dim.c.h; // container height
				var disp = dim.d.h; // display height
				if(to.y < disp - h){
					loadMore();
					to.y = disp - h;
				}
				return true;
			}

			ready(function(){
				list = registry.byId("list");
				list.setStore(store, {start:start, count:count});
				start += count;
			});
		});
	</script>
</head>
<body style="visibility:hidden;">
	<div data-dojo-type="dojox.mobile.ScrollableView" data-dojo-props='adjustDestination:adjustDestination'>
		<h1 data-dojo-type="dojox.mobile.Heading" id="head1" data-dojo-props='fixed:"top"'>EdgeToEdgeStoreList</h1>
		<ul data-dojo-type="dojox.mobile.EdgeToEdgeStoreList" id="list" data-dojo-props='append:true'></ul>
	</div>
</body>
</html>
